package com.deer.wms.base.system.service.bill;

import com.deer.wms.base.system.model.bill.BillOutDetailDto;
import com.deer.wms.base.system.model.bill.BillOutMaster;
import com.deer.wms.base.system.model.bill.BillOutMasterCriteria;
import com.deer.wms.base.system.model.bill.BillOutMasterDto;
import com.deer.wms.base.system.model.task.TaskInfo;
import com.deer.wms.common.core.service.Service;

import java.util.List;

public interface BillOutWorkService  extends Service<BillOutMaster, Integer> {
    /**
     * 根据billId查询出库单信息
     */
    public BillOutMasterDto findBillOutMasterDtoByBillId(Integer billId);

    /**
     *出库作业界面 根据billId查询BillOutDetail信息
     * @param billOutDetailDto
     * @return
     */
    public List<BillOutDetailDto> selectListByBillId(BillOutDetailDto billOutDetailDto);
    /***
     *出库作业界面，指定时间出库和指定批次出库，更新某一行的库存数量；
     * @author 李帅辰
     * @date 2020/10/16 14:05
     * @return com.deer.wms.base.system.model.bill.BillOutDetailDto
     */
    BillOutDetailDto selectEditQuantity(BillOutDetailDto billOutDetailDto);

    List<BillOutMasterDto> findList(BillOutMasterCriteria criteria);
    /**
     * 根据billId查询出库作业任务
     * @param billId
     * @return
     */
    public List<TaskInfo> selectTaskInfoBybillId(Integer billId);
    /**
     * 开始作业
     * @param billId
     * @return
     */
    int startAssignment(Integer billId);
    /**
     * 取消作业
     * @param billId
     * @return
     */
    int endAssignment(Integer billId);
    /***
     *确认发货
     * @author 李帅辰
     * @date 2020/10/22 14:14
     * @return int
     */
    int editBillOut(Integer billId);
}
